a00f9747d5d2a2c45a559699b0a46e6de0890420,enterprise/main/java/org/neo4j/kernel/ha/zookeeper/ZooClient.java,ZooClient,process,#WatchedEvent#,55
Before Change
}
else if ( path == null && event.getState() == Watcher.Event.KeeperState.SyncConnected )
{
Pair<Master, Machine> cachedMaster = getCachedMaster();
Pair<Master, Machine> masterBeforeIWrite = getMasterFromZooKeeper( false );
System.out.println( "Get master before write:" + masterBeforeIWrite );
sequenceNr = setup();
System.out.println( "did setup" );
keeperState = KeeperState.SyncConnected;
Pair<Master, Machine> currentMaster = getMasterFromZooKeeper( false );
System.out.println( "current master " + currentMaster );
// Master has changed since last time I checked and it's not me
if ( (cachedMaster.other().getMachineId() == -1 || currentMaster.other().getMachineId() != masterBeforeIWrite.other().getMachineId()) &&
currentMaster.other().getMachineId() != machineId )
{
System.out.println( "Master changed and it's not me" );
setDataChangeWatcher( MASTER_NOTIFY_CHILD, currentMaster.other().getMachineId() );
receiver.newMaster( currentMaster, new Exception() );
}
else if ( /*masterBeforeIWrite.other().getMachineId() == -1 && */
currentMaster.other().getMachineId() == machineId )
{
System.out.println( "2" );
receiver.newMaster( currentMaster, new Exception() );
}
}
else if ( path == null && event.getState() == Watcher.Event.KeeperState.Disconnected )
After Change
keeperState = KeeperState.SyncConnected;
Pair<Master, Machine> masterAfterIWrote = getMasterFromZooKeeper( false );
System.out.println( "Get master after write:" + masterAfterIWrote );
int masterId = masterAfterIWrote.other().getMachineId();
if ( masterBeforeIWrite.other().getMachineId() != masterId && masterId != machineId )
{
setDataChangeWatcher( MASTER_NOTIFY_CHILD, masterId );
}
receiver.newMaster( masterAfterIWrote, new Exception() );
}
else if ( path == null && event.getState() == Watcher.Event.KeeperState.Disconnected )
{